package com.rj.ability.leqi.adapter.domain.aisino;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.rj.ability.leqi.req.*;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Data;

/**
 * 发票明细
 *
 * @author YFX_RANLUBO
 * @date 2024/04/30 15:42
 **/
@Data
@AutoMappers({
        @AutoMapper(target = FpmxData.class, reverseConvertGenerate = false),
        @AutoMapper(target = QdhzqrdmxData.class, reverseConvertGenerate = false),
        @AutoMapper(target = FpmxJzfwData.class, reverseConvertGenerate = false)
})
public class InvoiceProduct {
    /**
     * 企业商品自编码	20	否	企业自定义
     */
    private String selfProductCode;
    /**
     * 金额 number  18，2 是
     */
    private String amount;
    /**
     * 明细序号  Number  8  是
     */
    @JsonProperty("id")
    private Integer mxxh;
    /**
     * 发票行性质  varchar  2  是 00：正常行 01：折扣行 02：被折扣行
     * aisino:0 正常行 1 折扣行,2 被折扣行
     */
    @JsonProperty("natureLines")
    private String fphxz;
    /**
     * 项目名称  varchar  600  是
     * aisino:商品名称,不需要带简称传入，但校验长度时与*简称*拼接后一共不超过92个字符。
     */
    @JsonProperty("item")
    private String xmmc;

    /**
     * 规格型号  varchar  150  否
     * aisino:折扣行时必须为空
     */
    @JsonProperty("specification")
    private String ggxh;
    /**
     * 单位  varchar  300  否
     */
    @JsonProperty("measurementDimension")
    private String dw;
    /**
     * 数量  varchar  25  否如“单价”栏次非空，则本栏次必须非空
     * aisino:折扣行时必须为空
     */
    @JsonProperty("quantity")
    private String sl;
    /**
     * 单价  varchar  25  否如“数量”栏次非空，则本栏次必须非空
     * aisino:折扣行时必须为空
     */
    @JsonProperty("price")
    private String dj;
    /**
     * 增值税税率/征收率number  16,6  是
     * aisino:例：9%税率传0.09  当“优惠政策标识”为03 免税 或04 不征税时，税率只能为0
     */
    @JsonProperty("taxScheme")
    private String slv;
    /**
     * 税额  number  18，2  是
     * aisino:taxMark含税标志 0不含税：必传；   1含税：不传，自动计算。
     */
    @JsonProperty("taxAmount")
    private String se;

    /**
     * 商品和服务税收分类合并编码varchar  19  是
     */
    @JsonProperty("productCode")
    private String sphfwssflhbbm;

    /**
     * 优惠政策标识  varchar  2  否
     * 01：简易征收
     * 02：稀土产品
     * 03：免税
     * 04：不征税
     * 05：先征后退
     * 06：100%先征后退
     * 07：50%先征后退
     * 08：按3%简易征收
     * 09：按5%简易征收
     * 10：按5%简易征收减  按1.5%计征
     * 11：即征即退30%
     * 12：即征即退50%
     * 13：即征即退70%
     * 14：即征即退100%
     * 15：超税负3%即征即退
     * 16：超税负8%即征即退
     * 17 超税负12%即征即退
     * 18：超税负6%即征即退
     */
    @JsonProperty("zeroTaxSchemeMark")
    private String yhzcbs;
    /**
     * 对应蓝字发票明细序号Number  8  否  红票必传
     */
    @JsonProperty("blueLetterInvoiceID")
    private Integer dylzfpmxxh;
    /**
     * 商品服务简称  varchar  120  是
     * aisino:税收分类编码简称，传入时候不带* *。
     */
    @JsonProperty("shorterItem")
    private String spfwjc;
    /**
     * 含税标志	1	是	0 不含税  1 含税
     */
    private String taxMark;

    public void check() {
    }
}
